﻿using SportsPlatform.Base;
using SportsPlatform.Query.PermissionManagement.AuthorizationInfo;
using SportsPlatform.Query.PermissionManagement.BaseQuery;
using SportsPlatform.Dto.PermissionManagement.AuthorizationInfo;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace SportsPlatform.PermissionManagement.IPermissionManagement
{
    /// <summary>
    /// 授权信息接口
    /// </summary>
    public interface IAuthorizationService
    {
        /// <summary>
        /// 新增客户信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<BaseResultDto> AddAuthorizationInfo(AddAuthorizationInfoQuery query);

        /// <summary>
        /// 获取用户授权状态
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetUserAuthorizationDto>> GetUserAuthorization(GetUserAuthorizationQuery query);

        /// <summary>
        /// 获取用户授权文件
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetUserAuthorizationFileDto>> GetUserAuthorizationFile(GetUserAuthorizationFileQuery query);

        /// <summary>
        /// 批量/单个审核
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<BaseResultDto> AuthorizationSteats(StatusChangeAuthorizationInfoQuery query);

        ///// <summary>
        ///// 获取授权列表信息
        ///// </summary>
        ///// <param name="query"></param>
        ///// <returns></returns>
        //Task<PagePagingDto<GetAuthorizationInfoListDto>> GetAuthorizationList(GetAuthorizationInfoQuery query);

        /// <summary>
        /// 获取授权详细列表信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<PagePagingDto<GetAuthorizationDetailedInfoListDto>> GetAuthorizationDetailedInfoList(GetAuthorizationInfoQuery query);

        /// <summary>
        /// 获取授权商户信息
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetAuthorizationCompanyInfoDto>> GetAuthorizationCompanyInfo(GetAuthorizationCompanyInfoQuery query);

        /// <summary>
        /// 获取授权码
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<ResultDto<GetAuthorizationCodeDto>> GetAuthorizationCode(GetAuthorizationCodeQuery query);

        /// <summary>
        /// 商户授权验证密码
        /// </summary>
        /// <param name="query"></param>
        /// <returns></returns>
        Task<BaseResultDto> AuthorizationVerificationPassword(AuthorizationVerificationPasswordQuery query);
    }
}
